import Vue from 'vue';  
import Vuex from 'vuex';  
  
Vue.use(Vuex);  
  
export default new Vuex.Store({  
  state: {  
    cartItems: [], // 购物车商品列表  
  },  
  mutations: {  
    addToCart(state, product) {  
      const cartItem = state.cartItems.find(item => item.id === product.id);  
      if (cartItem) {  
        cartItem.quantity++;  
      } else {  
        state.cartItems.push({ ...product, quantity: 1 });  
      }  
    },  
    removeFromCart(state, productId) {  
      const index = state.cartItems.findIndex(item => item.id === productId);  
      if (index > -1) {  
        if (state.cartItems[index].quantity > 1) {  
          state.cartItems[index].quantity--;  
        } else {  
          state.cartItems.splice(index, 1);  
        }  
      }  
    },  
  },  
  getters: {  
    cartTotal(state) {  
      return state.cartItems.reduce((total, item) => {  
        return total + item.price * item.quantity;  
      }, 0);  
    },  
  },  
});